package a1PodziemneMuzeum;

public class Kopiec {
	//kopiec min

	public Kopiec(int wielkosc) {
		t = new Sala[wielkosc + 1];
		t[0] = new Sala(0, 0, 0);
	}
	Sala t[];
	int iloscElementow = 0;

	public boolean wstaw(Sala sala) {
		if (iloscElementow+1 < t.length) {
			iloscElementow++;
			t[iloscElementow] = sala;
			heapUp(iloscElementow);
			return true;
		} else {
			return false;
		}
	}
	public Sala zabierz() {
		Sala sala=t[1];
		heapDown(1);
		return sala;
	}


	/*   public static void main(String[] args) {
	Kopiec kop = new Kopiec(100);
	for (int i = 1; i < 110; i++) {
	kop.wstaw(new Sala(i, i, i));
	}
	}*/
	private void heapUp(int element) {
		while (t[element].cena < t[element / 2].cena) {
			Sala temp = t[element];
			t[element] = t[element / 2];
			t[element / 2] = temp;
			element /= 2;
		}
	}

	private void heapDown(int ojciec) {
		t[ojciec] = t[iloscElementow];
		iloscElementow--;
		int syn = 2 * ojciec;
		while (syn <= iloscElementow) {
			if (syn + 1 <= iloscElementow && t[syn].cena > t[syn + 1].cena) {
				syn++;
			}
			if (t[syn].cena < t[ojciec].cena) {
				Sala temp = t[syn];
				t[syn] = t[ojciec];
				t[ojciec] = temp;
				ojciec = syn;
				syn = 2 * ojciec;
			} else {
				syn = iloscElementow + 1;
			}
		}
	}
}